home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Interfaces / AIncludes / Collections.a < prev    next >
Encoding:
Text File  |  1996-01-24  |  14.3 KB  |  643 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        Collections.a
  3. ;
  4. ;    Contains:    Collection Manager Interfaces.
  5. ;
  6. ;    Version:    Technology:    Quickdraw GX 1.0
  7. ;                Package:    Universal Interfaces 2.2 in “MPW” on ETO #20
  8. ;
  9. ;    Copyright:    © 1984-1995 by Apple Computer, Inc.
  10. ;                All rights reserved.
  11. ;
  12. ;    Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13. ;                stack.  Include the file and version information (from above)
  14. ;                in the problem description and send to:
  15. ;                    Internet:    apple.bugs@applelink.apple.com
  16. ;                    AppleLink:    APPLE.BUGS
  17. ;
  18. ;
  19.  
  20.     IF &TYPE('__COLLECTIONS__') = 'UNDEFINED' THEN
  21. __COLLECTIONS__ SET 1
  22.  
  23.  
  24.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  25.     include 'Types.a'
  26.     ENDIF
  27. ;        include 'ConditionalMacros.a'                                ;
  28.  
  29.     IF &TYPE('__MIXEDMODE__') = 'UNDEFINED' THEN
  30.     include 'MixedMode.a'
  31.     ENDIF
  32.  
  33. gestaltCollectionMgrVersion        EQU        'cltn'
  34.  
  35. ; Collection Manager Error Result Codes... 
  36. collectionItemLockedErr            EQU        -5750
  37. collectionItemNotFoundErr        EQU        -5751
  38. collectionIndexRangeErr            EQU        -5752
  39. collectionVersionErr            EQU        -5753
  40.  
  41. ; Convenience constants for functions which optionally return values... 
  42. dontWantTag                        EQU        0
  43. dontWantId                        EQU        0
  44. dontWantSize                    EQU        0
  45. dontWantAttributes                EQU        0
  46. dontWantIndex                    EQU        0
  47. dontWantData                    EQU        0
  48.  
  49. ; attributes bits 
  50. noCollectionAttributes            EQU        $00000000            ; no attributes bits set 
  51. allCollectionAttributes            EQU        $FFFFFFFF            ; all attributes bits set 
  52. userCollectionAttributes        EQU        $0000FFFF            ; user attributes bits 
  53. defaultCollectionAttributes        EQU        $40000000            ; default attributes - unlocked, persistent 
  54.  
  55. ;    Attribute bits 0 through 15 (entire low word) are reserved for use by the application.
  56. ;    Attribute bits 16 through 31 (entire high word) are reserved for use by the Collection Manager.
  57. ;    Only bits 31 (collectionLockBit) and 30 (collectionPersistenceBit) currently have meaning.
  58. ;
  59. collectionUser0Bit                EQU        0
  60. collectionUser1Bit                EQU        1
  61. collectionUser2Bit                EQU        2
  62. collectionUser3Bit                EQU        3
  63. collectionUser4Bit                EQU        4
  64. collectionUser5Bit                EQU        5
  65. collectionUser6Bit                EQU        6
  66. collectionUser7Bit                EQU        7
  67. collectionUser8Bit                EQU        8
  68. collectionUser9Bit                EQU        9
  69. collectionUser10Bit                EQU        10
  70. collectionUser11Bit                EQU        11
  71. collectionUser12Bit                EQU        12
  72. collectionUser13Bit                EQU        13
  73. collectionUser14Bit                EQU        14
  74. collectionUser15Bit                EQU        15
  75. collectionReserved0Bit            EQU        16
  76. collectionReserved1Bit            EQU        17
  77. collectionReserved2Bit            EQU        18
  78. collectionReserved3Bit            EQU        19
  79. collectionReserved4Bit            EQU        20
  80. collectionReserved5Bit            EQU        21
  81. collectionReserved6Bit            EQU        22
  82. collectionReserved7Bit            EQU        23
  83. collectionReserved8Bit            EQU        24
  84. collectionReserved9Bit            EQU        25
  85. collectionReserved10Bit            EQU        26
  86. collectionReserved11Bit            EQU        27
  87. collectionReserved12Bit            EQU        28
  88. collectionReserved13Bit            EQU        29
  89. collectionPersistenceBit        EQU        30
  90. collectionLockBit                EQU        31
  91.  
  92. ; attribute masks 
  93. collectionUser0Mask                EQU        1 << collectionUser0Bit
  94. collectionUser1Mask                EQU        1 << collectionUser1Bit
  95. collectionUser2Mask                EQU        1 << collectionUser2Bit
  96. collectionUser3Mask                EQU        1 << collectionUser3Bit
  97. collectionUser4Mask                EQU        1 << collectionUser4Bit
  98. collectionUser5Mask                EQU        1 << collectionUser5Bit
  99. collectionUser6Mask                EQU        1 << collectionUser6Bit
  100. collectionUser7Mask                EQU        1 << collectionUser7Bit
  101. collectionUser8Mask                EQU        1 << collectionUser8Bit
  102. collectionUser9Mask                EQU        1 << collectionUser9Bit
  103. collectionUser10Mask            EQU        1 << collectionUser10Bit
  104. collectionUser11Mask            EQU        1 << collectionUser11Bit
  105. collectionUser12Mask            EQU        1 << collectionUser12Bit
  106. collectionUser13Mask            EQU        1 << collectionUser13Bit
  107. collectionUser14Mask            EQU        1 << collectionUser14Bit
  108. collectionUser15Mask            EQU        1 << collectionUser15Bit
  109. collectionReserved0Mask            EQU        1 << collectionReserved0Bit
  110. collectionReserved1Mask            EQU        1 << collectionReserved1Bit
  111. collectionReserved2Mask            EQU        1 << collectionReserved2Bit
  112. collectionReserved3Mask            EQU        1 << collectionReserved3Bit
  113. collectionReserved4Mask            EQU        1 << collectionReserved4Bit
  114. collectionReserved5Mask            EQU        1 << collectionReserved5Bit
  115. collectionReserved6Mask            EQU        1 << collectionReserved6Bit
  116. collectionReserved7Mask            EQU        1 << collectionReserved7Bit
  117. collectionReserved8Mask            EQU        1 << collectionReserved8Bit
  118. collectionReserved9Mask            EQU        1 << collectionReserved9Bit
  119. collectionReserved10Mask        EQU        1 << collectionReserved10Bit
  120. collectionReserved11Mask        EQU        1 << collectionReserved11Bit
  121. collectionReserved12Mask        EQU        1 << collectionReserved12Bit
  122. collectionReserved13Mask        EQU        1 << collectionReserved13Bit
  123. collectionPersistenceMask        EQU        1 << collectionPersistenceBit
  124. collectionLockMask                EQU        1 << collectionLockBit
  125.  
  126. ;*********
  127. ; Types   
  128. ;*********
  129. ; abstract data type for a collection 
  130. ; typedef FourCharCode         CollectionTag
  131. ;
  132. ; pascal Collection NewCollection(void)
  133. ;
  134.     IF ¬ GENERATINGCFM THEN
  135.         Macro
  136.         _NewCollection
  137.             moveq    #0,d0
  138.             dc.w     $ABF6
  139.         EndM
  140.     ELSE
  141.         IMPORT_CFM_FUNCTION    NewCollection
  142.     ENDIF
  143.  
  144. ;
  145. ; pascal void DisposeCollection(Collection c)
  146. ;
  147.     IF ¬ GENERATINGCFM THEN
  148.         Macro
  149.         _DisposeCollection
  150.             moveq    #1,d0
  151.             dc.w     $ABF6
  152.         EndM
  153.     ELSE
  154.         IMPORT_CFM_FUNCTION    DisposeCollection
  155.     ENDIF
  156.  
  157. ;
  158. ; pascal Collection CloneCollection(Collection c)
  159. ;
  160.     IF ¬ GENERATINGCFM THEN
  161.         Macro
  162.         _CloneCollection
  163.             moveq    #2,d0
  164.             dc.w     $ABF6
  165.         EndM
  166.     ELSE
  167.         IMPORT_CFM_FUNCTION    CloneCollection
  168.     ENDIF
  169.  
  170. ;
  171. ; pascal long CountCollectionOwners(Collection c)
  172. ;
  173.     IF ¬ GENERATINGCFM THEN
  174.         Macro
  175.         _CountCollectionOwners
  176.             moveq    #3,d0
  177.             dc.w     $ABF6
  178.         EndM
  179.     ELSE
  180.         IMPORT_CFM_FUNCTION    CountCollectionOwners
  181.     ENDIF
  182.  
  183. ;
  184. ; pascal Collection CopyCollection(Collection srcCollection, Collection dstCollection)
  185. ;
  186.     IF ¬ GENERATINGCFM THEN
  187.         Macro
  188.         _CopyCollection
  189.             moveq    #4,d0
  190.             dc.w     $ABF6
  191.         EndM
  192.     ELSE
  193.         IMPORT_CFM_FUNCTION    CopyCollection
  194.     ENDIF
  195.  
  196. ;
  197. ; pascal long GetCollectionDefaultAttributes(Collection c)
  198. ;
  199.     IF ¬ GENERATINGCFM THEN
  200.         Macro
  201.         _GetCollectionDefaultAttributes
  202.             moveq    #5,d0
  203.             dc.w     $ABF6
  204.         EndM
  205.     ELSE
  206.         IMPORT_CFM_FUNCTION    GetCollectionDefaultAttributes
  207.     ENDIF
  208.  
  209. ;
  210. ; pascal void SetCollectionDefaultAttributes(Collection c, long whichAttributes, long newAttributes)
  211. ;
  212.     IF ¬ GENERATINGCFM THEN
  213.         Macro
  214.         _SetCollectionDefaultAttributes
  215.             moveq    #6,d0
  216.             dc.w     $ABF6
  217.         EndM
  218.     ELSE
  219.         IMPORT_CFM_FUNCTION    SetCollectionDefaultAttributes
  220.     ENDIF
  221.  
  222. ;
  223. ; pascal long CountCollectionItems(Collection c)
  224. ;
  225.     IF ¬ GENERATINGCFM THEN
  226.         Macro
  227.         _CountCollectionItems
  228.             moveq    #7,d0
  229.             dc.w     $ABF6
  230.         EndM
  231.     ELSE
  232.         IMPORT_CFM_FUNCTION    CountCollectionItems
  233.     ENDIF
  234.  
  235. ;
  236. ; pascal OSErr AddCollectionItem(Collection c, CollectionTag tag, long id, long itemSize, void *itemData)
  237. ;
  238.     IF ¬ GENERATINGCFM THEN
  239.         Macro
  240.         _AddCollectionItem
  241.             moveq    #8,d0
  242.             dc.w     $ABF6
  243.         EndM
  244.     ELSE
  245.         IMPORT_CFM_FUNCTION    AddCollectionItem
  246.     ENDIF
  247.  
  248. ;
  249. ; pascal OSErr GetCollectionItem(Collection c, CollectionTag tag, long id, long *itemSize, void *itemData)
  250. ;
  251.     IF ¬ GENERATINGCFM THEN
  252.         Macro
  253.         _GetCollectionItem
  254.             moveq    #9,d0
  255.             dc.w     $ABF6
  256.         EndM
  257.     ELSE
  258.         IMPORT_CFM_FUNCTION    GetCollectionItem
  259.     ENDIF
  260.  
  261. ;
  262. ; pascal OSErr RemoveCollectionItem(Collection c, CollectionTag tag, long id)
  263. ;
  264.     IF ¬ GENERATINGCFM THEN
  265.         Macro
  266.         _RemoveCollectionItem
  267.             moveq    #10,d0
  268.             dc.w     $ABF6
  269.         EndM
  270.     ELSE
  271.         IMPORT_CFM_FUNCTION    RemoveCollectionItem
  272.     ENDIF
  273.  
  274. ;
  275. ; pascal OSErr SetCollectionItemInfo(Collection c, CollectionTag tag, long id, long whichAttributes, long newAttributes)
  276. ;
  277.     IF ¬ GENERATINGCFM THEN
  278.         Macro
  279.         _SetCollectionItemInfo
  280.             moveq    #11,d0
  281.             dc.w     $ABF6
  282.         EndM
  283.     ELSE
  284.         IMPORT_CFM_FUNCTION    SetCollectionItemInfo
  285.     ENDIF
  286.  
  287. ;
  288. ; pascal OSErr GetCollectionItemInfo(Collection c, CollectionTag tag, long id, long *index, long *itemSize, long *attributes)
  289. ;
  290.     IF ¬ GENERATINGCFM THEN
  291.         Macro
  292.         _GetCollectionItemInfo
  293.             moveq    #12,d0
  294.             dc.w     $ABF6
  295.         EndM
  296.     ELSE
  297.         IMPORT_CFM_FUNCTION    GetCollectionItemInfo
  298.     ENDIF
  299.  
  300. ;
  301. ; pascal OSErr ReplaceIndexedCollectionItem(Collection c, long index, long itemSize, void *itemData)
  302. ;
  303.     IF ¬ GENERATINGCFM THEN
  304.         Macro
  305.         _ReplaceIndexedCollectionItem
  306.             moveq    #13,d0
  307.             dc.w     $ABF6
  308.         EndM
  309.     ELSE
  310.         IMPORT_CFM_FUNCTION    ReplaceIndexedCollectionItem
  311.     ENDIF
  312.  
  313. ;
  314. ; pascal OSErr GetIndexedCollectionItem(Collection c, long index, long *itemSize, void *itemData)
  315. ;
  316.     IF ¬ GENERATINGCFM THEN
  317.         Macro
  318.         _GetIndexedCollectionItem
  319.             moveq    #14,d0
  320.             dc.w     $ABF6
  321.         EndM
  322.     ELSE
  323.         IMPORT_CFM_FUNCTION    GetIndexedCollectionItem
  324.     ENDIF
  325.  
  326. ;
  327. ; pascal OSErr RemoveIndexedCollectionItem(Collection c, long index)
  328. ;
  329.     IF ¬ GENERATINGCFM THEN
  330.         Macro
  331.         _RemoveIndexedCollectionItem
  332.             moveq    #15,d0
  333.             dc.w     $ABF6
  334.         EndM
  335.     ELSE
  336.         IMPORT_CFM_FUNCTION    RemoveIndexedCollectionItem
  337.     ENDIF
  338.  
  339. ;
  340. ; pascal OSErr SetIndexedCollectionItemInfo(Collection c, long index, long whichAttributes, long newAttributes)
  341. ;
  342.     IF ¬ GENERATINGCFM THEN
  343.         Macro
  344.         _SetIndexedCollectionItemInfo
  345.             moveq    #16,d0
  346.             dc.w     $ABF6
  347.         EndM
  348.     ELSE
  349.         IMPORT_CFM_FUNCTION    SetIndexedCollectionItemInfo
  350.     ENDIF
  351.  
  352. ;
  353. ; pascal OSErr GetIndexedCollectionItemInfo(Collection c, long index, CollectionTag *tag, long *id, long *itemSize, long *attributes)
  354. ;
  355.     IF ¬ GENERATINGCFM THEN
  356.         Macro
  357.         _GetIndexedCollectionItemInfo
  358.             moveq    #17,d0
  359.             dc.w     $ABF6
  360.         EndM
  361.     ELSE
  362.         IMPORT_CFM_FUNCTION    GetIndexedCollectionItemInfo
  363.     ENDIF
  364.  
  365. ;
  366. ; pascal Boolean CollectionTagExists(Collection c, CollectionTag tag)
  367. ;
  368.     IF ¬ GENERATINGCFM THEN
  369.         Macro
  370.         _CollectionTagExists
  371.             moveq    #18,d0
  372.             dc.w     $ABF6
  373.         EndM
  374.     ELSE
  375.         IMPORT_CFM_FUNCTION    CollectionTagExists
  376.     ENDIF
  377.  
  378. ;
  379. ; pascal long CountCollectionTags(Collection c)
  380. ;
  381.     IF ¬ GENERATINGCFM THEN
  382.         Macro
  383.         _CountCollectionTags
  384.             moveq    #19,d0
  385.             dc.w     $ABF6
  386.         EndM
  387.     ELSE
  388.         IMPORT_CFM_FUNCTION    CountCollectionTags
  389.     ENDIF
  390.  
  391. ;
  392. ; pascal OSErr GetIndexedCollectionTag(Collection c, long tagIndex, CollectionTag *tag)
  393. ;
  394.     IF ¬ GENERATINGCFM THEN
  395.         Macro
  396.         _GetIndexedCollectionTag
  397.             moveq    #20,d0
  398.             dc.w     $ABF6
  399.         EndM
  400.     ELSE
  401.         IMPORT_CFM_FUNCTION    GetIndexedCollectionTag
  402.     ENDIF
  403.  
  404. ;
  405. ; pascal long CountTaggedCollectionItems(Collection c, CollectionTag tag)
  406. ;
  407.     IF ¬ GENERATINGCFM THEN
  408.         Macro
  409.         _CountTaggedCollectionItems
  410.             moveq    #21,d0
  411.             dc.w     $ABF6
  412.         EndM
  413.     ELSE
  414.         IMPORT_CFM_FUNCTION    CountTaggedCollectionItems
  415.     ENDIF
  416.  
  417. ;
  418. ; pascal OSErr GetTaggedCollectionItem(Collection c, CollectionTag tag, long whichItem, long *itemSize, void *itemData)
  419. ;
  420.     IF ¬ GENERATINGCFM THEN
  421.         Macro
  422.         _GetTaggedCollectionItem
  423.             moveq    #22,d0
  424.             dc.w     $ABF6
  425.         EndM
  426.     ELSE
  427.         IMPORT_CFM_FUNCTION    GetTaggedCollectionItem
  428.     ENDIF
  429.  
  430. ;
  431. ; pascal OSErr GetTaggedCollectionItemInfo(Collection c, CollectionTag tag, long whichItem, long *id, long *index, long *itemSize, long *attributes)
  432. ;
  433.     IF ¬ GENERATINGCFM THEN
  434.         Macro
  435.         _GetTaggedCollectionItemInfo
  436.             moveq    #23,d0
  437.             dc.w     $ABF6
  438.         EndM
  439.     ELSE
  440.         IMPORT_CFM_FUNCTION    GetTaggedCollectionItemInfo
  441.     ENDIF
  442.  
  443. ;
  444. ; pascal void PurgeCollection(Collection c, long whichAttributes, long matchingAttributes)
  445. ;
  446.     IF ¬ GENERATINGCFM THEN
  447.         Macro
  448.         _PurgeCollection
  449.             moveq    #24,d0
  450.             dc.w     $ABF6
  451.         EndM
  452.     ELSE
  453.         IMPORT_CFM_FUNCTION    PurgeCollection
  454.     ENDIF
  455.  
  456. ;
  457. ; pascal void PurgeCollectionTag(Collection c, CollectionTag tag)
  458. ;
  459.     IF ¬ GENERATINGCFM THEN
  460.         Macro
  461.         _PurgeCollectionTag
  462.             moveq    #25,d0
  463.             dc.w     $ABF6
  464.         EndM
  465.     ELSE
  466.         IMPORT_CFM_FUNCTION    PurgeCollectionTag
  467.     ENDIF
  468.  
  469. ;
  470. ; pascal void EmptyCollection(Collection c)
  471. ;
  472.     IF ¬ GENERATINGCFM THEN
  473.         Macro
  474.         _EmptyCollection
  475.             moveq    #26,d0
  476.             dc.w     $ABF6
  477.         EndM
  478.     ELSE
  479.         IMPORT_CFM_FUNCTION    EmptyCollection
  480.     ENDIF
  481.  
  482. ;
  483. ; pascal OSErr FlattenCollection(Collection c, CollectionFlattenUPP flattenProc, void *refCon)
  484. ;
  485.     IF ¬ GENERATINGCFM THEN
  486.         Macro
  487.         _FlattenCollection
  488.             moveq    #27,d0
  489.             dc.w     $ABF6
  490.         EndM
  491.     ELSE
  492.         IMPORT_CFM_FUNCTION    FlattenCollection
  493.     ENDIF
  494.  
  495. ;
  496. ; pascal OSErr FlattenPartialCollection(Collection c, CollectionFlattenUPP flattenProc, void *refCon, long whichAttributes, long matchingAttributes)
  497. ;
  498.     IF ¬ GENERATINGCFM THEN
  499.         Macro
  500.         _FlattenPartialCollection
  501.             moveq    #28,d0
  502.             dc.w     $ABF6
  503.         EndM
  504.     ELSE
  505.         IMPORT_CFM_FUNCTION    FlattenPartialCollection
  506.     ENDIF
  507.  
  508. ;
  509. ; pascal OSErr UnflattenCollection(Collection c, CollectionFlattenUPP flattenProc, void *refCon)
  510. ;
  511.     IF ¬ GENERATINGCFM THEN
  512.         Macro
  513.         _UnflattenCollection
  514.             moveq    #29,d0
  515.             dc.w     $ABF6
  516.         EndM
  517.     ELSE
  518.         IMPORT_CFM_FUNCTION    UnflattenCollection
  519.     ENDIF
  520.  
  521. ;
  522. ; pascal CollectionExceptionUPP GetCollectionExceptionProc(Collection c)
  523. ;
  524.     IF ¬ GENERATINGCFM THEN
  525.         Macro
  526.         _GetCollectionExceptionProc
  527.             moveq    #30,d0
  528.             dc.w     $ABF6
  529.         EndM
  530.     ELSE
  531.         IMPORT_CFM_FUNCTION    GetCollectionExceptionProc
  532.     ENDIF
  533.  
  534. ;
  535. ; pascal void SetCollectionExceptionProc(Collection c, CollectionExceptionUPP exceptionProc)
  536. ;
  537.     IF ¬ GENERATINGCFM THEN
  538.         Macro
  539.         _SetCollectionExceptionProc
  540.             moveq    #31,d0
  541.             dc.w     $ABF6
  542.         EndM
  543.     ELSE
  544.         IMPORT_CFM_FUNCTION    SetCollectionExceptionProc
  545.     ENDIF
  546.  
  547. ;***************************************************************************************
  548. ; Utility Routines for handle-based access...                                                          
  549. ;***************************************************************************************
  550. ;
  551. ; pascal Collection GetNewCollection(short collectionID)
  552. ;
  553.     IF ¬ GENERATINGCFM THEN
  554.         Macro
  555.         _GetNewCollection
  556.             moveq    #32,d0
  557.             dc.w     $ABF6
  558.         EndM
  559.     ELSE
  560.         IMPORT_CFM_FUNCTION    GetNewCollection
  561.     ENDIF
  562.  
  563. ;
  564. ; pascal OSErr AddCollectionItemHdl(Collection aCollection, CollectionTag tag, long id, Handle itemData)
  565. ;
  566.     IF ¬ GENERATINGCFM THEN
  567.         Macro
  568.         _AddCollectionItemHdl
  569.             moveq    #33,d0
  570.             dc.w     $ABF6
  571.         EndM
  572.     ELSE
  573.         IMPORT_CFM_FUNCTION    AddCollectionItemHdl
  574.     ENDIF
  575.  
  576. ;
  577. ; pascal OSErr GetCollectionItemHdl(Collection aCollection, CollectionTag tag, long id, Handle itemData)
  578. ;
  579.     IF ¬ GENERATINGCFM THEN
  580.         Macro
  581.         _GetCollectionItemHdl
  582.             moveq    #34,d0
  583.             dc.w     $ABF6
  584.         EndM
  585.     ELSE
  586.         IMPORT_CFM_FUNCTION    GetCollectionItemHdl
  587.     ENDIF
  588.  
  589. ;
  590. ; pascal OSErr ReplaceIndexedCollectionItemHdl(Collection aCollection, long index, Handle itemData)
  591. ;
  592.     IF ¬ GENERATINGCFM THEN
  593.         Macro
  594.         _ReplaceIndexedCollectionItemHdl
  595.             moveq    #35,d0
  596.             dc.w     $ABF6
  597.         EndM
  598.     ELSE
  599.         IMPORT_CFM_FUNCTION    ReplaceIndexedCollectionItemHdl
  600.     ENDIF
  601.  
  602. ;
  603. ; pascal OSErr GetIndexedCollectionItemHdl(Collection aCollection, long index, Handle itemData)
  604. ;
  605.     IF ¬ GENERATINGCFM THEN
  606.         Macro
  607.         _GetIndexedCollectionItemHdl
  608.             moveq    #36,d0
  609.             dc.w     $ABF6
  610.         EndM
  611.     ELSE
  612.         IMPORT_CFM_FUNCTION    GetIndexedCollectionItemHdl
  613.     ENDIF
  614.  
  615. ;
  616. ; pascal OSErr FlattenCollectionToHdl(Collection aCollection, Handle flattened)
  617. ;
  618.     IF ¬ GENERATINGCFM THEN
  619.         Macro
  620.         _FlattenCollectionToHdl
  621.             moveq    #37,d0
  622.             dc.w     $ABF6
  623.         EndM
  624.     ELSE
  625.         IMPORT_CFM_FUNCTION    FlattenCollectionToHdl
  626.     ENDIF
  627.  
  628. ;
  629. ; pascal OSErr UnflattenCollectionFromHdl(Collection aCollection, Handle flattened)
  630. ;
  631.     IF ¬ GENERATINGCFM THEN
  632.         Macro
  633.         _UnflattenCollectionFromHdl
  634.             moveq    #38,d0
  635.             dc.w     $ABF6
  636.         EndM
  637.     ELSE
  638.         IMPORT_CFM_FUNCTION    UnflattenCollectionFromHdl
  639.     ENDIF
  640.  
  641.     ENDIF ; __COLLECTIONS__
  642.